home *** CD-ROM | disk | FTP | other *** search
/ MACD 5 / MACD 5.bin / workbench / libs / intuisup.lha / Intuisup / source.lha / Gadgets / gadgets.h < prev    next >
C/C++ Source or Header  |  1992-08-08  |  16KB  |  375 lines

  1. /* $Revision Header *** Header built automatically - do not edit! ***********
  2.  *
  3.  *    (C) Copyright 1991 by Torsten Jürgeleit
  4.  *
  5.  *    Name .....: gadgets.h
  6.  *    Created ..: Thursday 19-Dec-91 20:52:44
  7.  *    Revision .: 10
  8.  *
  9.  *    Date        Author                 Comment
  10.  *    =========   ====================   ====================
  11.  *    08-Aug-92   Torsten Jürgeleit      new flags
  12.  *                       GADGET_DATA_FLAG_INPUT_CENTER/RIGHT
  13.  *    06-Aug-92   Torsten Jürgeleit      new flag
  14.  *                       GADGET_DATA_FLAG_LISTVIEW_ENTRY_COLOR
  15.  *    19-Jul-92   Torsten Jürgeleit      remove/display_visible_gadget_lists()
  16.  *                       imported from requester/requester.c
  17.  *    11-Jul-92   Torsten Jürgeleit      use RAWKEY instead of VANILLAKEY
  18.  *                       for gadget hotkeys
  19.  *    01-Jul-92   Torsten Jürgeleit      added support for custom slider
  20.  *                       knob image
  21.  *    14-Apr-92   Torsten Jürgeleit      new flag GADGET_DATA_FLAG_NO_CLEAR
  22.  *    01-Apr-92   Torsten Jürgeleit      any references to gadget data
  23.  *                       via gl_Data removed
  24.  *    01-Apr-92   Torsten Jürgeleit      changed parameter size of
  25.  *                       modify_gadget() for new value of
  26.  *                       USE_CURRENT_VALUE (1L << 31)
  27.  *    31-Mar-92   Torsten Jürgeleit      changed USE_CURRENT_VALUE from ~0L
  28.  *                       to (1L << 31)
  29.  *    21-Mar-92   Torsten Jürgeleit      flags for converting numbers with
  30.  *                       string gadgets
  31.  *    19-Dec-91   Torsten Jürgeleit      Created this file!
  32.  *
  33.  ****************************************************************************
  34.  *
  35.  *    Defines, structures, prototypes and pragmas for gadget functions
  36.  *
  37.  * $Revision Header ********************************************************/
  38.  
  39. #ifndef    ISUP_GADGETS_H
  40. #define    ISUP_GADGETS_H
  41.  
  42.     /* Defines for gadgets */
  43.  
  44. #define GADGET_DATA_TYPE_BUTTON        1    /* button gadget */
  45. #define GADGET_DATA_TYPE_CHECK        2    /* check mark gadget */
  46. #define GADGET_DATA_TYPE_MX        3    /* mutual exclude gadget */
  47. #define GADGET_DATA_TYPE_STRING        4    /* string input gadget */
  48. #define GADGET_DATA_TYPE_INTEGER    5    /* integer input gadget */
  49. #define GADGET_DATA_TYPE_SLIDER        6    /* slider gadget */
  50. #define GADGET_DATA_TYPE_SCROLLER    7    /* scroller gadget */
  51. #define GADGET_DATA_TYPE_CYCLE        8    /* cycle gadget */
  52. #define GADGET_DATA_TYPE_COUNT        9    /* count gadget */
  53. #define GADGET_DATA_TYPE_LISTVIEW    10    /* list view gadget */
  54. #define GADGET_DATA_TYPE_PALETTE    11    /* palette gadget */
  55.  
  56. #define MAX_GADGET_DATA_TYPE        GADGET_DATA_TYPE_PALETTE
  57.  
  58. #define GADGET_DATA_FLAG_DISABLED        (1L << 0)    /* gadget disabled (ghosted) - default enabled */
  59. #define GADGET_DATA_FLAG_NO_BORDER        (1L << 1)    /* no gadget border - default with border */
  60. #define GADGET_DATA_FLAG_HIGH_COMP        (1L << 2)    /* highliting by complement - default by select border */
  61. #define GADGET_DATA_FLAG_ORIENTATION_VERT    (1L << 3)    /* vertical orientation - default horizontal */
  62. #define GADGET_DATA_FLAG_HOTKEY            (1L << 4)    /* hotkey given - default none */
  63. #define GADGET_DATA_FLAG_NO_TEXT_OUTPUT        (1L << 5)    /* no text output, but scan gadget text for hotkey */
  64. #define GADGET_DATA_FLAG_TEXT_LEFT        (1L << 6)    /* place text left of gadget */
  65. #define GADGET_DATA_FLAG_TEXT_RIGHT        (1L << 7)    /* place text right of gadget */
  66. #define GADGET_DATA_FLAG_TEXT_ABOVE        (1L << 8)    /* place text above of gadget */
  67. #define GADGET_DATA_FLAG_TEXT_BELOW        (1L << 9)    /* place text below of gadget */
  68. #define GADGET_DATA_FLAG_TEXT_COLOR2        (1L << 10)    /* use 2nd text render pen for gadget text */
  69. #define GADGET_DATA_FLAG_BUTTON_TOGGLE        (1L << 11)    /* button gadgets: toggle button - default no toggle */
  70. #define GADGET_DATA_FLAG_BUTTON_IMAGE        (1L << 12)    /* button gadgets: render image - default no image */
  71. #define GADGET_DATA_FLAG_INPUT_AUTO_ACTIVATE    (1L << 13)    /* input gadgets: acivate after GADGETUP next or previous input gadget */
  72. #define GADGET_DATA_FLAG_STRING_UNSIGNED_DEC    (1L << 14)    /* string gadgets: input default no pointer to string but an unsigned decimal number */
  73. #define GADGET_DATA_FLAG_STRING_SIGNED_DEC    (1L << 15)    /* string gadgets: input default no pointer to string but an signed decimal number */
  74. #define GADGET_DATA_FLAG_STRING_HEX        (1L << 16)    /* string gadgets: input default no pointer to string but an hex number */
  75. #define GADGET_DATA_FLAG_STRING_BIN        (1L << 17)    /* string gadgets: input default no pointer to string but an binary number */
  76. #define GADGET_DATA_FLAG_SCROLLER_NO_ARROWS    (1L << 18)    /* scroller gadget: no arrows - default with arrows */
  77. #define GADGET_DATA_FLAG_COUNT_SIGNED_DEC    (1L << 19)    /* count gadget: signed dec - default unsigned dec */
  78. #define GADGET_DATA_FLAG_LISTVIEW_READ_ONLY    (1L << 20)    /* list view gadget: read only - default selection enabled */
  79. #define GADGET_DATA_FLAG_LISTVIEW_SHOW_SELECTED (1L << 21)    /* list view gadget: show last selected entry - default no */
  80. #define GADGET_DATA_FLAG_PALETTE_NO_INDICATOR    (1L << 22)    /* palette gadget: no current color indicator - default with indicator */
  81. #define GADGET_DATA_FLAG_PALETTE_INDICATOR_TOP    (1L << 23)    /* palette gadget: place indicator at top - default at left */
  82. #define GADGET_DATA_FLAG_MOVE_POINTER        (1L << 24)    /* move mouse pointer to center of this gadget */
  83. #define GADGET_DATA_FLAG_NO_CLEAR        (1L << 25)    /* don't clear area occupied by this gadget before drawing */
  84. #define GADGET_DATA_FLAG_SLIDER_IMAGE        (1L << 26)    /* kludge to define image for knob of proportional gadget in gd_TextAttr (if text then default TextAttr used) */
  85. #define GADGET_DATA_FLAG_LISTVIEW_ENTRY_COLOR    (1L << 27)    /* list view gadget: if first char of an entry text equals <Ctrl A> ($01) then this char will be skipped and the rest of this entry text will be printed in a different color */
  86. #define GADGET_DATA_FLAG_INPUT_CENTER        (1L << 28)    /* input gadgets: center input string within gadget */
  87. #define GADGET_DATA_FLAG_INPUT_RIGHT        (1L << 29)    /* input gadgets: right justify input string within gadget */
  88.  
  89. #define GADGET_IDCMP_FLAGS_BUTTON    (GADGETUP | RAWKEY)
  90. #define GADGET_IDCMP_FLAGS_CHECK    (GADGETDOWN | RAWKEY)
  91. #define GADGET_IDCMP_FLAGS_MX        (GADGETDOWN | RAWKEY)
  92. #define GADGET_IDCMP_FLAGS_STRING    (GADGETUP | RAWKEY)
  93. #define GADGET_IDCMP_FLAGS_INTEGER    (GADGETUP | RAWKEY)
  94. #define GADGET_IDCMP_FLAGS_SLIDER    (GADGETUP | MOUSEMOVE | RAWKEY)
  95. #define GADGET_IDCMP_FLAGS_SCROLLER    (GADGETDOWN | GADGETUP | MOUSEMOVE | INTUITICKS | RAWKEY)
  96. #define GADGET_IDCMP_FLAGS_CYCLE    (GADGETUP | RAWKEY)
  97. #define GADGET_IDCMP_FLAGS_COUNT    (GADGETDOWN | GADGETUP | MOUSEMOVE | RAWKEY)
  98. #define GADGET_IDCMP_FLAGS_LISTVIEW    (GADGETDOWN | GADGETUP | MOUSEMOVE | INTUITICKS | RAWKEY)
  99. #define GADGET_IDCMP_FLAGS_PALETTE    (GADGETUP | RAWKEY)
  100. #define GADGET_IDCMP_FLAGS_ALL        (GADGETDOWN | GADGETUP | MOUSEMOVE | INTUITICKS | RAWKEY)
  101.  
  102. #define GADGET_LIST_FLAG_DISPLAYED    (1 << 0)    /* gadget list currently displayed */
  103.  
  104. #define EXTENDED_GADGET_TYPE_BUTTON        1
  105. #define EXTENDED_GADGET_TYPE_CHECK        2
  106. #define EXTENDED_GADGET_TYPE_MX            3
  107. #define EXTENDED_GADGET_TYPE_STRING        4
  108. #define EXTENDED_GADGET_TYPE_INTEGER        5
  109. #define EXTENDED_GADGET_TYPE_SLIDER_PROP    6
  110. #define EXTENDED_GADGET_TYPE_SCROLLER_PROP    7
  111. #define EXTENDED_GADGET_TYPE_SCROLLER_LEFT    8
  112. #define EXTENDED_GADGET_TYPE_SCROLLER_RIGHT    9
  113. #define EXTENDED_GADGET_TYPE_SCROLLER_UP    10
  114. #define EXTENDED_GADGET_TYPE_SCROLLER_DOWN    11
  115. #define EXTENDED_GADGET_TYPE_CYCLE        12
  116. #define EXTENDED_GADGET_TYPE_COUNT        13
  117. #define EXTENDED_GADGET_TYPE_LISTVIEW_PROP    14
  118. #define EXTENDED_GADGET_TYPE_LISTVIEW_UP    15
  119. #define EXTENDED_GADGET_TYPE_LISTVIEW_DOWN    16
  120. #define EXTENDED_GADGET_TYPE_LISTVIEW_ENTRY    17
  121. #define EXTENDED_GADGET_TYPE_PALETTE_INDICATOR    18
  122. #define EXTENDED_GADGET_TYPE_PALETTE_COLOR    19
  123.  
  124. #define EXTENDED_GADGET_FLAG_HOTKEY        (1 << 0)    /* hotkey exists -> eg_Hotkey and eg_HotkeyPos are valid */
  125. #define EXTENDED_GADGET_FLAG_RENDER_BORDER    (1 << 1)    /* draw eg_Render as border */
  126. #define EXTENDED_GADGET_FLAG_RENDER_IMAGE    (1 << 2)    /* draw eg_Render as image */
  127. #define EXTENDED_GADGET_FLAG_KNOB_IMAGE        (1 << 3)    /* proportional gadget with custom knob image instead of AUTOKNOB */
  128. #define EXTENDED_GADGET_FLAG_CLOSE_FONT        (1 << 4)    /* font defined in gd_TextAttr opened -> don't forget to close it */
  129.  
  130. #define USE_CURRENT_VALUE    (1L << 31)    /* used for set_gadget_attributes() to indicate data for which to use the current value */
  131.  
  132.     /* Defines for internal use only */
  133.  
  134. #define QUALIFIER_SHIFT        (IEQUALIFIER_LSHIFT | IEQUALIFIER_RSHIFT)
  135. #define QUALIFIER_ALT        (IEQUALIFIER_LALT | IEQUALIFIER_RALT)
  136.  
  137. #define ARROW_AUTO_REPEAT_START_DELAY    3
  138.  
  139. #define MAX_CYCLE_DELAY        5
  140.  
  141. #define CYCLE_POP_XOFFSET    4
  142. #define CYCLE_POP_YOFFSET    2
  143.  
  144. #define CYCLE_LIST_ENTRY_YPOS(num)    (yinc > 0 ? num * yinc : (cy->cy_TextEntries - num - 1) * -yinc);
  145.  
  146. #define MAX_COUNT_DELAY        5
  147. #define MAX_COUNT_STEP_SIZE    20
  148. #define MAX_COUNT_DISTANCE    (MAX_COUNT_DELAY * MAX_COUNT_STEP_SIZE)
  149. #define MIN_COUNT_DELAY_MICROS    30000L
  150.  
  151. #define MAX_DATA_FLAG_BITS    32
  152.  
  153. #define DEC_NUM_CONVERT_FLAGS    0
  154. #define HEX_NUM_CONVERT_FLAGS    (CONVERT_FLAG_IDENTIFIER | CONVERT_FLAG_C_STYLE)
  155. #define BIN_NUM_CONVERT_FLAGS    CONVERT_FLAG_IDENTIFIER
  156.  
  157.     /* Structures */
  158.  
  159. struct VisibleGadgetLists {
  160.     struct SignalSemaphore  vg_Semaphore;
  161.     struct MinList          vg_MinList;
  162.     USHORT    vg_Count;
  163. };
  164. struct GadgetList {
  165.     struct MinNode     gl_MinNode;     /* node to insert GadgetList into VisibleGadgetLists list */
  166.     struct RenderInfo  *gl_RenderInfo;
  167.     struct Window      *gl_Window;
  168.     LONG    gl_ID;            /* id = 'ISUP' */
  169.     USHORT    gl_DataEntries;        /* number of entries in gadget data array */
  170.     UBYTE    gl_Flags;
  171.     UBYTE    gl_AutoRepeatDelay;    /* delay counter for start of auto repeat for active arrow gadget */
  172.     BYTE    *gl_GadgetBuffer;
  173.     ULONG    gl_GadgetBufferSize;
  174.     BYTE    *gl_ImageBuffer;
  175.     ULONG    gl_ImageBufferSize;
  176.     BYTE    **gl_LanguageTextArray;
  177.     struct RequesterList   *gl_RequesterList;
  178.     struct ExtendedGadget  *gl_ActiveGadget;
  179.     struct ExtendedGadget  *gl_Gadgets[1];    /* array with gl_DataEntries ptr to extended gadgets */
  180. };
  181. struct GadgetData {
  182.     ULONG    gd_Type;
  183.     ULONG    gd_Flags;
  184.     USHORT    gd_LeftEdge;
  185.     USHORT    gd_TopEdge;
  186.     USHORT    gd_Width;
  187.     USHORT    gd_Height;
  188.     BYTE    *gd_Text;
  189.     struct TextAttr  *gd_TextAttr;
  190.     union    {
  191.         struct {    /* standard data struct */
  192.         LONG    gd_Data1;
  193.         LONG    gd_Data2;
  194.         VOID    *gd_Data3;
  195.         } gd_Data;
  196.  
  197.         struct {    /* for button gadgets */
  198.         ULONG    gd_ButtonSelected;        /* selection state for toggle buttons - ZERO = unselected, non ZERO = selected */
  199.         struct Image  *gd_ButtonNormalRender;    /* normal render image */
  200.         struct Image  *gd_ButtonSelectRender;    /* select render image */
  201.         } gd_ButtonData;
  202.  
  203.         struct {    /* for check gadgets */
  204.         ULONG    gd_CheckSelected;    /* selection state - ZERO = unselected, non ZERO = selected */
  205.         ULONG    gd_CheckPad1;
  206.         ULONG    gd_CheckPad2;
  207.         } gd_CheckData;
  208.  
  209.         struct {    /* for mutual exclude gadgets */
  210.         ULONG    gd_MXSpacing;        /* pixel spacing between MX gadgets */
  211.         ULONG    gd_MXActiveEntry;    /* num of active entry from text array */
  212.         BYTE    **gd_MXTextArray;    /* ptr to MX text ptr array */
  213.         } gd_MXData;
  214.  
  215.         struct {    /* for string and integer gadgets */
  216.         ULONG    gd_InputLen;        /* len of input buffer */
  217.         USHORT    gd_InputActivateNext;    /* num of next string/num gadget to activate */
  218.         USHORT    gd_InputActivatePrev;    /* num of previous string/num gadget to activate */
  219.         BYTE    *gd_InputDefault;    /* string: default text [syntax: "text"] */
  220.                         /* integer: default number [syntax: (VOID *)num] */
  221.         } gd_InputData;
  222.  
  223.         struct {    /* for slider gadgets */
  224.         LONG    gd_SliderMin;        /* min level */
  225.         LONG    gd_SliderMax;        /* max level */
  226.         LONG    gd_SliderLevel;        /* current slider level */
  227.         } gd_SliderData;
  228.  
  229.         struct {    /* for scroller gadgets */
  230.         ULONG    gd_ScrollerVisible;    /* visible entries */
  231.         ULONG    gd_ScrollerTotal;    /* total entries */
  232.         ULONG    gd_ScrollerTop;        /* current top entry */
  233.         } gd_ScrollerData;
  234.  
  235.         struct {    /* for cycle gadget */
  236.         ULONG    gd_CycleSpacing;    /* pixel spacing between pop up cycle list entries */
  237.         ULONG    gd_CycleActive;        /* num of current cycle text ptr array entry */
  238.         BYTE    **gd_CycleTextArray;    /* ptr to cycle text ptr array */
  239.         } gd_CycleData;
  240.  
  241.         struct {    /* for count gadget */
  242.         ULONG    gd_CountMin;        /* min value */
  243.         ULONG    gd_CountMax;        /* max value */
  244.         ULONG    gd_CountValue;    /* current count value */
  245.         } gd_CountData;
  246.  
  247.         struct {    /* for list view gadget */
  248.         ULONG    gd_ListViewSpacing;    /* pixel spacing between list view entries */
  249.         ULONG    gd_ListViewTop;        /* current top entry */
  250.         struct List  *gd_ListViewList;    /* current list ptr */
  251.         } gd_ListViewData;
  252.  
  253.         struct {    /* for palette gadget */
  254.         ULONG    gd_PaletteDepth;    /* num of bitplanes for palette */
  255.         ULONG    gd_PaletteColorOffset;    /* first color of palette */
  256.         ULONG    gd_PaletteActiveColor;    /* selected color */
  257.         } gd_PaletteData;
  258.     } gd_SpecialData;
  259. };
  260. struct MXData {
  261.     USHORT    mx_TextEntries;
  262.     USHORT    mx_ActiveEntry;
  263. };
  264. struct InputData {
  265.     USHORT    id_ActivateNext;
  266.     USHORT    id_ActivatePrev;
  267. };
  268. struct SliderData {
  269.     LONG    sl_Min;
  270.     LONG    sl_Max;
  271.     LONG    sl_Level;
  272. };
  273. struct ScrollerData {
  274.     ULONG    sc_Visible;
  275.     ULONG    sc_Total;
  276.     ULONG    sc_Top;
  277. };
  278. struct CycleData {
  279.     SHORT    cy_LeftEdge;
  280.     SHORT    cy_TopEdge;
  281.     USHORT    cy_Width;
  282.     USHORT    cy_Height;
  283.     USHORT    cy_EntryHeight;
  284.     BYTE    **cy_TextArray;
  285.     BYTE    *cy_ActiveText;
  286.     USHORT    cy_TextEntries;
  287.     USHORT    cy_ActiveEntry;
  288. };
  289. struct CountData {
  290.     SHORT    co_LeftEdge;
  291.     SHORT    co_TopEdge;
  292.     USHORT    co_Width;
  293.     USHORT    co_Height;
  294.     ULONG    co_Min;
  295.     ULONG    co_Max;
  296.     ULONG    co_Value;
  297. };
  298. struct ListViewData {
  299.     SHORT    lv_LeftEdge;
  300.     SHORT    lv_TopEdge;
  301.     USHORT    lv_Width;
  302.     USHORT    lv_Height;
  303.     USHORT    lv_VisibleEntries;
  304.     USHORT    lv_EntryHeight;
  305.     struct List  *lv_List;
  306.     struct Node  *lv_TopNode;
  307.     USHORT    lv_ListEntries;
  308.     USHORT    lv_TopEntry;
  309.     USHORT    lv_SelectedEntry;
  310. };
  311. struct PaletteData {
  312.     USHORT    pd_MaxColors;
  313.     USHORT    pd_ColorOffset;
  314.     ULONG    pd_ActiveColor;
  315. };
  316. struct ExtendedGadget {
  317.     struct Gadget  eg_Gadget;
  318.     USHORT    eg_BorderWidth;        /* needed by editor - DIRECT behind gadget structure !!! */
  319.     USHORT    eg_BorderHeight;    /* needed by editor - DIRECT behind gadget structure !!! */
  320.     SHORT    eg_BorderLeftEdge;    /* needed by modify_gadget() */
  321.     SHORT    eg_BorderTopEdge;    /* needed by modify_gadget() */
  322.     USHORT    eg_Type;        /* internal gadget type */
  323.     USHORT    eg_Flags;        /* special flags, e.g render object type */
  324.     USHORT    eg_DataType;        /* copy of gd_Data */
  325.     USHORT    eg_DataEntry;        /* ordinal number of entry in gl_Data array */
  326.     ULONG    eg_DataFlags;        /* copy of gd_Flags */
  327.     struct GadgetList  *eg_GadgetList;
  328.     struct TextAttr    *eg_TextAttr;
  329.     struct TextFont    *eg_TextFont;
  330.     BYTE    *eg_Text;
  331.     SHORT    eg_TextLeftEdge;
  332.     SHORT    eg_TextTopEdge;
  333.     USHORT    eg_TextWidth;        /* needed by modify_gadget() */
  334.     UBYTE    eg_Hotkey;        /* ASCII value of gadget hotkey */
  335.     UBYTE    eg_HotkeyPos;        /* pos of as hotkey marked (underscore) char in gadget text */
  336.     APTR    eg_Render;        /* ptr to image or border - determined by eg_Flags */
  337.     struct ExtendedGadget  *eg_NextGadget;
  338. };
  339.     /* Global prototypes */
  340.  
  341. struct GadgetList  *create_gadgets(struct RenderInfo  *ri,
  342.                struct GadgetData  *gd, SHORT hoffset, SHORT voffset,
  343.                         BYTE **language_text_array);
  344. VOID  free_gadgets(struct GadgetList  *gl);
  345. VOID  display_gadgets(struct Window  *win, struct GadgetList  *gl);
  346. VOID  refresh_gadgets(struct GadgetList  *gl);
  347. VOID  modify_gadget(struct GadgetList  *gl, USHORT data_entry,
  348.           LONG left_edge, LONG top_edge, ULONG width, ULONG height);
  349. ULONG set_gadget_attributes(struct GadgetList  *gl, USHORT data_entry,
  350.          ULONG flag_mask, ULONG flag_bits, ULONG data1, ULONG data2,
  351.                                    VOID *data3);
  352. VOID  activate_input_gadget(struct GadgetList  *gl, USHORT data_entry);
  353. struct Gadget  *gadget_address(struct GadgetList  *gl, USHORT data_entry);
  354. struct Window  *remove_gadgets(struct GadgetList  *gl);
  355. struct IntuiMessage  *get_msg(struct MsgPort  *uport);
  356. VOID  reply_msg(struct IntuiMessage  *imsg);
  357. UBYTE convert_rawkey_to_ascii(struct IntuiMessage  *im);
  358.  
  359.     /* Global pragmas */
  360.  
  361. #pragma intfunc(create_gadgets(a0,a1,d0,d1,a2))
  362. #pragma intfunc(free_gadgets(a0))
  363. #pragma intfunc(display_gadgets(a0,a1))
  364. #pragma intfunc(refresh_gadgets(a0))
  365. #pragma intfunc(modify_gadget(a0,d0,d1,d2,d3,d4))
  366. #pragma intfunc(set_gadget_attributes(a0,d0,d1,d2,d3,d4,a1))
  367. #pragma intfunc(activate_input_gadget(a0,d0))
  368. #pragma intfunc(gadget_address(a0,d0))
  369. #pragma intfunc(remove_gadgets(a0))
  370. #pragma intfunc(get_msg(a0))
  371. #pragma intfunc(reply_msg(a0))
  372. #pragma intfunc(convert_rawkey_to_ascii(a0))
  373.  
  374. #endif   /* ISUP_GADGETS_H */
  375.